package ch7;

/**
 * @author ANG.YU
 * @date 2020-08-12 17:51
 */
public class Parcel2 {
    public static void main(String[] args) {
        Parcel2 p = new Parcel2();
        p.ship("Tanzania");
        Parcel2 q = new Parcel2();
        // Defining handles to inner classes:
        /**
         * 若想在除外部类非 static 方法内部之外的任何地方生成内部类的一个对象，必须将那个对象的类型设为“外
         * 部类名.内部类名”，就象 main()中展示的那样。
         */
        Parcel2.Contents c = q.cont();
        Parcel2.Destination d = q.to("Borneo");
    }

    public Destination to(String s) {
        return new Destination(s);
    }

    public Contents cont() {
        return new Contents();
    }

    public void ship(String dest) {
        Contents c = cont();
        Destination d = to(dest);
    }

    class Contents {
        private int i = 11;

        public int value() {
            return i;
        }
    }

    class Destination {
        private String label;

        public Destination(String whereTo) {
            label = whereTo;
        }

        String readLabel() {
            return label;
        }
    }

}
